home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / ant / antenna2 / yagi.bas < prev   
BASIC Source File  |  1986-08-11  |  11KB  |  358 lines

  1. 10 CLS:KEY OFF
  2. 20 KEY 1,"":KEY 10,""
  3. 30 LOCATE 25,1:PRINT"F1 = Change director spacing and reactance     F10 = QUIT"
  4. 40 T$="3-ELEMENT YAGI ARRAY DESIGN":L=1:GOSUB 1790
  5. 50 PRINT:PRINT:PRINT
  6. 60 '                MAY 22, 86
  7. 70 '      AHMAD FAIZAL MOHD ZAIN
  8. 80 :
  9. 90 DEF FN LOGTEN(X)=LOG(X)/LOG(10)
  10. 100 DIM RZ(20,20),XZ(20,20)
  11. 110 DIM XX(30),YY(30)
  12. 120 DIM D(140),ZR(140),ZX(140)
  13. 130 :
  14. 140 GOTO 650          'MAIN PROG
  15. 150 :
  16. 160 '    OPERN IS TYPE OF OPERATION
  17. 170 '    OPERN=1 IS ADDN
  18. 180 '    OPERN=2 IS SUBTRACTION
  19. 190 '   OPERN=3 IS MULTIPLICATION
  20. 200 :
  21. 210 '    SUBROUTINE TO CONVERT RECTANGULAR TO POLAR COORD
  22. 220 '    PARAMETERS INPUTS X,Y
  23. 230 '    PARAMETERS OUTPUT Z,TH    (TH IN RADIANS)
  24. 240 '   TH IN RADIANS
  25. 250 '
  26. 260 Z=SQR(X*X+Y*Y)              'MAGNITUDE
  27. 270 IF X>0 THEN TH=ATN(Y/X)
  28. 280 IF X<0 THEN TH=PI*SGN(Y)+ATN(Y/X)
  29. 290 IF X=0 THEN TH=(PI/2)*SGN(Y)
  30. 300 IF Y=0 AND X<0 THEN TH=PI
  31. 310 RETURN
  32. 320 '
  33. 330 '   SUBROUTINE TO CONVERT POLAR TO RECTANGULAR
  34. 340 '   PARAMETER INPUTS  Z,TH
  35. 350 '   PARAMETER OUTPUT  X,Y
  36. 360 '
  37. 370 X=Z*COS(TH)
  38. 380 Y=Z*SIN(TH)
  39. 390 RETURN
  40. 400 '
  41. 410 '   SUBROUTINE TO ADD TWO VECTORS IN POLAR FORM
  42. 420 '   INPUTS Z1,Z2,TH1,TH2
  43. 430 '   OUTPUT X,Y
  44. 440 '
  45. 450 Z=Z1:TH=TH1:GOSUB 330:X1=X:Y1=Y      'TAKES CARE OF FIRST VECTOR
  46. 460 Z=Z2:TH=TH2:GOSUB 330:X2=X:Y2=Y      '-------------SECOND -------
  47. 470 IF OPERN=2 THEN 490                  'SUBTRACT
  48. 480 X=X1+X2:Y=Y1+Y2: GOTO 500            'ADD
  49. 490 X=X1-X2:Y=Y1-Y2
  50. 500 RETURN                               'RETURNS X,Y
  51. 510 '
  52. 520 '   SUBROUTINE TO MULT/DIVIDE TWO VECTORS
  53. 530 '   INPUT X1,X2,Y1,Y2
  54. 540 '   OUTPUT Z,TH
  55. 550 '
  56. 560 X=X1:Y=Y1:GOSUB 210        'RECT TO POLAR
  57. 570 Z1=Z:TH1=TH
  58. 580 X=X2:Y=Y2:GOSUB 210
  59. 590 Z2=Z:TH2=TH
  60. 600 IF OPERN=4 THEN 620       'DIVIDE
  61. 610 Z=Z1*Z2:TH=TH1+TH2: GOTO 630
  62. 620 Z=Z1/Z2:TH=TH1-TH2
  63. 630 RETURN
  64. 640 '
  65. 650 'MAIN PROG STARTS HERE
  66. 660 GOSUB 1810
  67. 670 PRINT:PRINT
  68. 680 CLS
  69. 690 LOCATE 25,1:PRINT"F1 = Change director spacing and reactance     F10 = QUIT"
  70. 700 T$="3-ELEMENT YAGI ARRAY DESIGN":L=1:GOSUB 1790
  71. 710 PRINT:PRINT:PRINT
  72. 720 RZ(1,1)=ZR(0):XZ(1,1)=ZX(0)
  73. 730 RZ(2,2)=ZR(0):XZ(2,2)=ZX(0)
  74. 740 RZ(3,3)=ZR(0):XZ(3,3)=ZX(0)
  75. 750 INPUT"SEPERATION BETWEEN REFLECTOR AND DRIVER (IN LAMBDA) ";SR
  76. 760 INPUT"SEPERATION BETWEEN DIRECTOR AND DRIVER (IN LAMBDA) ";SD
  77. 770 GOTO 820
  78. 780 LOCATE 8,1:PRINT "DIRECTOR SPACING =          ";
  79. 790 LOCATE 8,20:INPUT SD
  80. 800 LOCATE 8,40:PRINT "DIRECTOR REACTANCE =          ";
  81. 810 LOCATE 8,61:INPUT XZ(3,3)
  82. 820 MR=100*SR:MD=100*SD      'TO GET OFFSET
  83. 830 MRD=MR+MD
  84. 840 :
  85. 850 PRINT
  86. 860 LOCATE 8,1:PRINT USING"DIRECTOR SPACING = ##.##  ";SD
  87. 870 LOCATE 8,40:PRINT USING "DIRECTOR REACTANCE = ###.##   ";XZ(3,3)
  88. 880 PRINT:PRINT
  89. 890 IF XZ(3,3)<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  90. 900 PRINT USING"SELF-IMPEDANCE OF DIRECTOR :###.##";ZR(0);:PRINT SIGN$;:PRINT USING "###.##";ABS(XZ(3,3))
  91. 910 RZ(1,2)=ZR(MR):XZ(1,2)=ZX(MR)
  92. 920 RZ(1,3)=ZR(MRD):XZ(1,3)=ZX(MRD)
  93. 930 RZ(2,3)=ZR(MD):XZ(2,3)=ZX(MD)
  94. 940 :
  95. 950 '  FIND DRIVING POINT IMPEDANCE
  96. 960 X1=RZ(1,3):Y1=XZ(1,3)
  97. 970 X2=RZ(1,2):Y2=XZ(1,2)
  98. 980 OPERN=3:GOSUB 520         'Z(1,3)*Z(1,2)
  99. 990 ZTEM1=Z:THTEM1=TH               'TEMPORARY STORE
  100. 1000 X1=RZ(1,1):Y1=XZ(1,1)
  101. 1010 X2=RZ(2,3):Y2=XZ(2,3)
  102. 1020 OPERN=3:GOSUB 520         'Z11*Z23
  103. 1030 Z1=ZTEM1:TH1=THTEM1:Z2=Z:TH2=TH
  104. 1040 OPERN=2:GOSUB 410         'Z13*Z12 - Z11*Z23
  105. 1050 XTEM=X:YTEM=Y
  106. 1060 X1=RZ(1,3):Y1=XZ(1,3)
  107. 1070 X2=RZ(1,3):Y2=XZ(1,3)
  108. 1080 OPERN=3:GOSUB 520         'Z13*Z13
  109. 1090 ZTEM1=Z:THTEM1=TH
  110. 1100 X1=RZ(1,1):Y1=XZ(1,1)
  111. 1110 X2=RZ(3,3):Y2=XZ(3,3)
  112. 1120 OPERN=3:GOSUB 520         'Z11*Z33
  113. 1130 Z1=ZTEM1:TH1=THTEM1:Z2=Z:TH2=TH
  114. 1140 OPERN=2:GOSUB 410         'Z13*Z13 - Z11*Z33
  115. 1150 X1=XTEM:Y1=YTEM:X2=X:Y2=Y
  116. 1160 OPERN=4:GOSUB 520         ' (Z31*Z12-Z11*Z32)/(Z13*Z13-Z11*Z33)
  117. 1170 AZ=Z:ATH=TH
  118. 1180 MAGI3BY2=AZ:ANGI3BY2=PI+ATH
  119. 1190 X=RZ(1,3):Y=XZ(1,3):GOSUB 210:Z1=Z:TH1=TH
  120. 1200 Z2=AZ:TH2=ATH:OPERN=3:GOSUB 600     ' Z13*AZ
  121. 1210 GOSUB 330:X1=X:Y1=Y
  122. 1220 X2=RZ(1,2):Y2=XZ(1,2)
  123. 1230 OPERN=2:GOSUB 470:X1=X:Y1=Y      'Z13*AZ-Z12
  124. 1240 X2=RZ(1,1):Y2=XZ(1,1):OPERN=4:GOSUB 520
  125. 1250 MAGI1BY2=Z:ANGI1BY2=TH
  126. 1260 GOSUB 330:X1=X:Y1=Y
  127. 1270 X2=RZ(1,2):Y2=XZ(1,2)
  128. 1280 OPERN=3:GOSUB 520:GOSUB 330
  129. 1290 BX=X:BY=Y
  130. 1300 Z=AZ:TH=ATH:GOSUB 330:X1=X:Y1=Y
  131. 1310 X2=RZ(2,3):Y2=XZ(2,3)
  132. 1320 OPERN=3:GOSUB 520:GOSUB 330:CX=X:CY=Y
  133. 1330 DX=RZ(2,2):DY=XZ(2,2)
  134. 1340 ZDR=BX+DX-CX:ZDX=BY+DY-CY
  135. 1350 IF ZDX<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  136. 1360 PRINT USING"DRIVING POINT IMPEDANCE :   ###.##";ZDR;:PRINT SIGN$;:PRINT USING "###.##";ABS(ZDX)
  137. 1370 PRINT:PRINT
  138. 1380 :
  139. 1390 TH1=ANGI3BY2+2*PI*SD: Z1=MAGI3BY2
  140. 1400 TH2=ANGI1BY2+2*PI*SR: Z2=MAGI1BY2
  141. 1410 OPERN=1:GOSUB 410
  142. 1420 EFRONTX=X+1:EFRONTY=Y
  143. 1430 TH1=ANGI3BY2-2*PI*SD: Z1=MAGI3BY2
  144. 1440 TH2=ANGI1BY2-2*PI*SR: Z2=MAGI1BY2
  145. 1450 OPERN=1:GOSUB 410
  146. 1460 EBACKX=X+1:EBACKY=Y
  147. 1470 X1=EFRONTX:Y1=EFRONTY
  148. 1480 X2=EBACKX:Y2=EBACKY
  149. 1490 OPERN=4:GOSUB 520
  150. 1500 MAGEFTOB=Z
  151. 1510 PRINT USING"FRONT TO BACK RATIO = ##.###";MAGEFTOB
  152. 1520 PRINT USING"BACK TO FRONT RATIO = ##.###";1/MAGEFTOB
  153. 1530 J=J+1
  154. 1540 XX(J)=1/MAGEFTOB:YY(J)=XZ(3,3)
  155. 1550 ' CALCULATE GAIN ETC
  156. 1560 MAGEFRONT=SQR(3600*EFRONTX*EFRONTX+3600*EFRONTY*EFRONTY)
  157. 1570 MAGEBACK=SQR(3600*EBACKX*EBACKX+3600*EBACKY*EBACKY)
  158. 1580 POWER=MAGEFRONT*MAGEFRONT/240
  159. 1590 POWERBCK=MAGEBACK*MAGEBACK/240
  160. 1600 WATTRAD=ZDR/2
  161. 1610 D=4*POWER/WATTRAD
  162. 1620 DBACK=4*POWERBCK/WATTRAD
  163. 1630 PRINT:PRINT
  164. 1640 PRINT USING"DIRECTIVITY (FRONT)= ###.##";D;:PRINT USING" OR ###.##";10*FN LOGTEN(D);:PRINT" dB"
  165. 1650 PRINT USING"DIRECTIVITY (BACK) = ###.##";DBACK;:PRINT USING" OR ###.##";10*FN LOGTEN(DBACK);:PRINT" dB"
  166. 1660 A$=INKEY$
  167. 1670 IF LEN(A$)<>2 THEN 1660
  168. 1680 ANS=ASC(MID$(A$,2,1))
  169. 1690 IF ANS=59 THEN 780
  170. 1700 IF ANS=68 THEN 1730
  171. 1710 GOTO 1660
  172. 1720 PRINT:PRINT
  173. 1730 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 1790
  174. 1740 AN$=INKEY$
  175. 1750 IF AN$="Y" OR AN$="y" THEN GOTO 680
  176. 1760 IF AN$="N" OR AN$="n" THEN END
  177. 1770 GOTO 1730
  178. 1780 :
  179. 1790 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN    'SUBROUTINE TO CENTRE TEXT
  180. 1800 END
  181. 1810 REM  05/22/86   AHMAD FAIZAL MOHD ZAIN
  182. 1820 PI=3.141592
  183. 1830 PRINT:PRINT:PRINT
  184. 1840 FOR I=0 TO 139
  185. 1850   READ D(I),ZR(I),ZX(I)
  186. 1860 NEXT I
  187. 1870 RETURN
  188. 1880 :
  189. 1890 REM  ZEROTH-ORDER MUTUAL IMPEDANCE BETWEEN PARALLEL,
  190. 1900 REM   SIDE-BY-SIDE, HALF-WAVE DIPOLE
  191. 1910 :
  192. 1920 DATA 0.0, 73.1296, 42.5445
  193. 1930 DATA .01, 73.0903, 38.8086
  194. 1940 DATA .02, 72.9246, 35.1090
  195. 1950 DATA .03, 72.6347, 31.4521
  196. 1960 DATA .04, 72.2232, 27.8467
  197. 1970 :
  198. 1980 DATA .05, 71.6917, 24.2932
  199. 1990 DATA .06, 71.0431, 20.7999
  200. 2000 DATA .07, 70.2800, 17.3723
  201. 2010 DATA .08, 69.4058, 14.0181
  202. 2020 DATA .09, 68.4223, 10.7371
  203. 2030 DATA .10, 67.3336, 7.5383
  204. 2040 DATA .11, 66.1719, 4.4274
  205. 2050 DATA .12, 64.8997, 1.4039
  206. 2060 DATA .13, 63.5223, -1.5281
  207. 2070 DATA .14, 62.0465, -4.3622
  208. 2080 :
  209. 2090 DATA .15, 60.4753, -7.0992
  210. 2100 DATA .16, 58.8152, -9.7331
  211. 2110 DATA .17, 57.0716, -12.2608
  212. 2120 DATA .18, 55.2514, -14.6774
  213. 2130 DATA .19, 53.3572, -16.9839
  214. 2140 :
  215. 2150 DATA .20, 51.3967, -19.1747
  216. 2160 DATA .21, 49.3797, -21.2491
  217. 2170 DATA .22, 47.3045, -23.2050
  218. 2180 DATA .23, 45.1764, -25.0407
  219. 2190 DATA .24, 43.0023, -26.7536
  220. 2200 :
  221. 2210 DATA .25, 40.7842, -28.3450
  222. 2220 DATA .26, 38.5292, -29.8126
  223. 2230 DATA .27, 36.2428, -31.1558
  224. 2240 DATA .28, 33.9325, -32.3732
  225. 2250 DATA .29, 31.6002, -33.4663
  226. 2260 :
  227. 2270 DATA .30, 29.2551, -34.4336
  228. 2280 DATA .31, 26.8992, -35.2747
  229. 2290 DATA .32, 24.5401, -35.9916
  230. 2300 DATA .33, 22.1832, -36.5854
  231. 2310 DATA .34, 19.8358, -37.0571
  232. 2320 :
  233. 2330 DATA .35, 17.5000, -37.4087
  234. 2340 DATA .36, 15.1829, -37.6416
  235. 2350 DATA .37, 12.8898, -37.7579
  236. 2360 DATA .38, 10.6278, -37.7597
  237. 2370 DATA .39, 8.3985, -37.6493
  238. 2380 :
  239. 2390 DATA .40, 6.2100, -37.4296
  240. 2400 DATA .41, 4.0667, -37.1015
  241. 2410 DATA .42, 1.9724, -36.6699
  242. 2420 DATA .43, -0.0687, -36.1382
  243. 2430 DATA .44, -2.0509, -35.5106
  244. 2440 :
  245. 2450 DATA .45, -3.9731, -34.7899
  246. 2460 DATA .46, -5.8299, -33.9805
  247. 2470 DATA .47, -7.6178, -33.0864
  248. 2480 DATA .48, -9.3320, -32.1128
  249. 2490 DATA .49, -10.9718, -31.0624
  250. 2500 :
  251. 2510 DATA .50, -12.5321, -29.9413
  252. 2520 DATA .51, -14.0105, -28.7513
  253. 2530 DATA .52, -15.4049, -27.4993
  254. 2540 DATA .53, -16.7132, -26.1904
  255. 2550 DATA .54, -17.9325, -24.8309
  256. 2560 :
  257. 2570 DATA .55, -19.0631, -23.4237
  258. 2580 DATA .56, -20.1024, -21.9750
  259. 2590 DATA .57, -21.0492, -20.4901
  260. 2600 DATA .58, -21.9020, -18.9754
  261. 2610 DATA .59, -22.6613, -17.4340
  262. 2620 :
  263. 2630 DATA .60, -23.3256, -15.8729
  264. 2640 DATA .61, -23.8922, -14.2970
  265. 2650 DATA .62, -24.3642, -12.7109
  266. 2660 DATA .63, -24.7424, -11.1198
  267. 2670 DATA .64, -25.0274, -9.5299
  268. 2680 :
  269. 2690 DATA .65, -25.2206, -7.9438
  270. 2700 DATA .66, -25.3233, -6.3674
  271. 2710 DATA .67, -25.3369, -4.8055
  272. 2720 DATA .68, -25.2634, -3.2640
  273. 2730 DATA .69, -25.1045, -1.7450
  274. 2740 :
  275. 2750 DATA .70, -24.8626, -0.2548
  276. 2760 DATA .71, -24.5389, 1.2023
  277. 2770 DATA .72, -24.1371, 2.6231
  278. 2780 DATA .73, -23.6602, 4.0039
  279. 2790 DATA .74, -23.1116, 5.3397
  280. 2800 :
  281. 2810 DATA .75, -22.4936, 6.6293
  282. 2820 DATA .76, -21.8100, 7.8683
  283. 2830 DATA .77, -21.0642, 9.0535
  284. 2840 DATA .78, -20.2606, 10.1813
  285. 2850 DATA .79, -19.4016, 11.2506
  286. 2860 :
  287. 2870 DATA .80, -18.4922, 12.2574
  288. 2880 DATA .81, -17.5345, 13.1984
  289. 2890 DATA .82, -16.5337, 14.0734
  290. 2900 DATA .83, -15.4941, 14.8807
  291. 2910 DATA .84, -14.4207, 15.6184
  292. 2920 :
  293. 2930 DATA .85, -13.3162, 16.2864
  294. 2940 DATA .86, -12.1855, 16.8832
  295. 2950 DATA .87, -11.0330, 17.4079
  296. 2960 DATA .88, -9.8640, 17.8597
  297. 2970 DATA .89, -8.6809, 18.2391
  298. 2980 :
  299. 2990 DATA .90, -7.4896, 18.5454
  300. 3000 DATA .91, -6.2939, 18.7768
  301. 3010 DATA .92, -5.0977, 18.9360
  302. 3020 DATA .93, -3.9052, 19.0238
  303. 3030 DATA .94, -2.7212, 19.0409
  304. 3040 :
  305. 3050 DATA .95, -1.5478, 18.9887
  306. 3060 DATA .96, -0.3900, 18.8686
  307. 3070 DATA .97, 0.7486, 18.6819
  308. 3080 DATA .98, 1.8635, 18.4307
  309. 3090 DATA .99, 2.9528, 18.1166
  310. 3100 :
  311. 3110 DATA 1.00, 4.0116, 17.7420
  312. 3120 DATA 1.01, 5.0360, 17.3073
  313. 3130 DATA 1.02, 6.0244, 16.8167
  314. 3140 DATA 1.03, 6.9738, 16.2728
  315. 3150 DATA 1.04, 7.8808, 15.6788
  316. 3160 :
  317. 3170 DATA 1.05, 8.7444, 15.0368
  318. 3180 DATA 1.06, 9.5616, 14.3502
  319. 3190 DATA 1.07, 10.3300, 13.6222
  320. 3200 DATA 1.08, 11.0473, 12.8566
  321. 3210 DATA 1.09, 11.7126, 12.0554
  322. 3220 :
  323. 3230 DATA 1.10, 12.3236, 11.2233
  324. 3240 DATA 1.11, 12.8772, 10.3624
  325. 3250 DATA 1.12, 13.3742, 9.4769
  326. 3260 DATA 1.13, 13.8139, 8.5703
  327. 3270 DATA 1.14, 14.1952, 7.6469
  328. 3280 :
  329. 3290 DATA 1.15, 14.5182, 6.7088
  330. 3300 DATA 1.16, 14.7824, 5.7604
  331. 3310 DATA 1.17, 14.9876, 4.8051
  332. 3320 DATA 1.18, 15.1339, 3.8473
  333. 3330 DATA 1.19, 15.2219, 2.8891
  334. 3340 :
  335. 3350 DATA 1.20, 15.2518, 1.9351
  336. 3360 DATA 1.21, 15.2224, 0.9886
  337. 3370 DATA 1.22, 15.1367, 0.0527
  338. 3380 DATA 1.23, 14.9957, -0.8697
  339. 3390 DATA 1.24, 14.8009, -1.7747
  340. 3400 :
  341. 3410 DATA 1.25, 14.5535, -2.6605
  342. 3420 DATA 1.26, 14.2553, -3.5237
  343. 3430 DATA 1.27, 13.9081, -4.3612
  344. 3440 DATA 1.28, 13.5141, -5.1700
  345. 3450 DATA 1.29, 13.0748, -5.9485
  346. 3460 :
  347. 3470 DATA 1.30, 12.5930, -6.6930
  348. 3480 DATA 1.31, 12.0693, -7.4008
  349. 3490 DATA 1.32, 11.5076, -8.0708
  350. 3500 DATA 1.33, 10.9104, -8.7012
  351. 3510 DATA 1.34, 10.2808, -9.2899
  352. 3520 :
  353. 3530 DATA 1.35, 9.6207, -9.8361
  354. 3540 DATA 1.36, 8.9333, -10.3379
  355. 3550 DATA 1.37, 8.2216, -10.7941
  356. 3560 DATA 1.38, 7.4890, -11.2033
  357. 3570 DATA 1.39, 6.7374, -11.5652
  358.